<?php
namespace app\api\model;

use think\Cache;
use think\Model;

class Evalute extends Model
{
    protected $hidden=['stick','audit','update_time','userid'];
    protected $autoWriteTimestamp = 'datetime';

    /**
     * @desc 发表新主评论
     * @param $data array 评论信息
     * @param $audit int 评论审核状态
     * @param $fileType  int 上传文件类型
     * @param $fileName  string 上传文件名称
     * @return $re 新增sql执行结果
     */
    public static function addEvalute($data,$audit,$fileType,$fileName)
    {
        $re=self::create([
            'filename'=>$fileName,
            'filetype'=>$fileType,
            'txt'=>$data['txt'],
            'userid'=>$data['userid'],
            'stick'=>0,
            'browsenum'=>0,
            'audit'=>$audit
        ]);
        return $re;
    }

    /**
     * @desc 获取全部的评论
     * @return $re 所有的评论集合
     */
    public static function getEvalutes()
    {
        $re=self::with(['user','desc','desc'=>['user','replyuser']])
            ->where('audit',1)
            ->order('stick desc')
            ->order('create_time desc')
            ->select();
        return $re;
    }

    /**
     * @desc 根据主评论id获取完整的评论内容
     * @param $id 主评论id
     * @return $re 评论内容 array or error
     */
    public static function getEvaluteById($id)
    {
        $re=self::with(['user','desc','desc'=>['user','replyuser']])
            ->find($id);
        return $re;
    }

    /**
     * @desc         获取指定id主评论
     * @param $id    主评论id
     * @return $re   返回主评论内容不包含回复
     */
    public static function getEvalute($id){
        $re=self::find($id);
        return $re;
    }

    /**
     * @desc 文件url获取器
     * @param $value filename
     * @return string 完整的file url
     */
    public function getFileNameAttr($value)
    {
        if(strripos($value,'mp4')){
            $photo='http://'.$_SERVER['SERVER_NAME'].'/shop/shop/public/uploadEvalute/video/'.$value;
        }else{
            $photo='http://'.$_SERVER['SERVER_NAME'].'/shop/shop/public/uploadEvalute/image/'.$value;
        }
        return $photo;
    }
    public function desc(){
        //关联模型名，外键名，当前模型主键名
        return $this->hasMany("Evalutedesc","replyid","id");
    }
    public function user(){
        return $this->belongsTo('User','userid','id')->field('id,name,photo');
    }
}
?>